package cn.sxw.ld.module.member.pojo;


import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.jetbrains.annotations.NotNull;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * @author: SXW
 * @since: 2025年02月20日 11:11
 * @desc: 会员相关属性
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Member implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    // 会员联系方式
    @TableId
    private String phone;

    // 会员姓名
    @TableField("member_name")
    @NotNull
    private String memberName;

    //状态 0:女，1:男
    @TableField("sex")
    private Integer sex;

    // 创建时间
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    // 最近修改时间
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    // 自动填充策略，在插入时自动填充本字段
    @TableField(fill = FieldFill.INSERT)
    private Long createUser;

    // 在插入与更新时，自动填充本字段
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;

    // 会员生日
    @TableField("birthday")
    private LocalDate birthday;

    // 余额
    @TableField("balance")
    private BigDecimal balance;

    // 累计充值数
    @TableField("total_recharge")
    private BigDecimal totalRecharge;

    // 逻辑删除字段 0:未删除，1:已删除
    @TableField("is_deleted")
    private Integer isDeleted;
}
